package com.schezhi.link.auth.model;

import com.c39.cloud.rbac.model.userAuth.UserAuthVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * @author JiaLing.FanX
 * @version 1.0
 * @description: TODO
 * @date 2025/10/8 14:06
 */
@Data
@AllArgsConstructor
@Builder
public class UserAuthModel implements Serializable {

        /**
         * 员工ID
         */
        private Long staffId;

        /**
         * 验证令牌
         */
        private String accessToken;

        /**
         * 有效时间
         */
        private Long validityTime;

        /**
         * 签名
         */
        private String sign;

        /**
         * 最后一次登录时间戳
         */
        private Long lastLoginTime;

        /**
         * 权限版本号
         */
        private int version;

        /**
         * 组织ID
         */
        private Long orgId;

        /**
         * 用户性别
         */
        private String staffSex;

        /**
         * 用户邮箱
         */
        private String staffEmail;

        /**
         * 组织名称
         */
        private String orgName;

        /**
         * 真实姓名
         */
        private String realName;

        /**
         * 用户账号（登录账号）
         */
        private String staffName;

        /**
         * 用户唯一编号
         */
        private String staffNumber;

        /**
         * 用户手机号
         */
        private String staffPhone;

        /**
         * 角色名称列表
         */
        private List<String> roleNames;

        /**
         * 下级员工姓名列表（包含自己）
         */
        private List<String> lowerEmpNames;

        /**
         * 下级员工编号列表（包含自己）
         */
        private List<String> lowerEmpNumbers;

        /**
         * 下级直控员工编号
         */
        private List<String> directLowerEmpNumbers;

        /**
         * 接口权限列表
         */
        private List<String> interfacePermissions;

        /**
         * 员工场景部门
         */
        private String empDepartment;

        /**
         * 员工片区
         */
        private String empArea;

        /**
         * 省市信息
         */
        private String empProvinces;

        /**
         * 当前客户编号
         */
        private String currentCust;

        /**
         * 岗位
         */
        private String position;

        /**
         * 员工编号
         */
        private String empNum;

        /**
         * 当前角色ID
         */
        private Long currentRoleId;

        /**
         * 当前角色名称
         */
        private String currentRoleName;

        /**
         * 用户权限数据
         */
        private Map<String, List<UserAuthVO>> userPermissions;

}
